#ifndef COMMONPAGE_H
#define COMMONPAGE_H

#include <QWidget>
#include <QSize>
#include <QMediaPlaylist>
#include "listitembox.h"
#include "musiclist.h"

namespace Ui {
class CommonPage;
}

//用于区分3个界面
enum PageType
{
    LIKE_PAGE,      //我喜欢的音乐
    LOCAL_PAGE,     //本地音乐
    HISTORY_PAGE    //最近播放
};

class CommonPage : public QWidget
{
    Q_OBJECT

public:
    explicit CommonPage(QWidget *parent = nullptr);
    ~CommonPage();
    //因为是3个界面共同使用的，所以这里需要对个别不同的标题和图片进行设置
    void setCommonPageUI(const QString& title,const QString& image);
    //区分3个界面不同的musicList
    void setMusicListType(PageType type);
    //设置不同界面的音乐
    void addMusicToPage(MusicList& musicList);
    void reFresh(MusicList& musicList);
    //在对应的界面添加对应需要播放的音乐
    void addMusicToPlayer(MusicList& musicList,QMediaPlaylist* playList);
    const QString& getMusicIdByIndex(int index)const;
    void setImageLabel(QPixmap pixMap);         //通过music类来设置图片信息
signals:
    void updateLikeMusic(bool isLike,const QString& musicId);
    void playAll(PageType curType);     //处理播放所有的按钮
    void playMusicByIndex(CommonPage* page,int index);
private:
    Ui::CommonPage *ui;
    PageType commonPageType;    //用于区分不同的界面
    QVector<QString> musicListOfPage;   //不同的界面有不同的列表,这里后面存放id即可
};

#endif // COMMONPAGE_H
